iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 24
1
自我挑戰組

Vue 與 Element UI 兩三事系列 第 24

Vue 與 Element UI 兩三事#24 Form 表單

  • 分享至 

  • xImage
  •  

正文:
今天來介紹 form 表單吧

<el-form ref="form" :model="form" :rules="rules" label-width="80px" label-position="left" >
    <el-form-item label="活動區域" prop="area">
        <el-input v-model="form.area" placeholder="請輸入活動區域"></el-input>
    </el-form-item>
    <el-form-item prop="name">
        <div slot="label">
            <span>活動名稱</span>
            <el-input v-model="form.name" placeholder="請輸入活動名稱"></el-input>
        </div>
    </el-form-item>
    <el-button @click="submitForm()">送出</el-button>
</el-form>

先來介紹 ref 屬性,在 vue 當中,我們可以為子組件設置 ref 屬性而後在父組件通過 this.$refs.refName 來調用子元件的方法和屬性
而在 el-form 中添加的 model 屬性是為了將 vue data 中的資料對應上來,並在 el-form-item 中設置 prop 屬性,屬性值為該欄位需要驗證的規則
而 rules 為該表單需要驗證的規則,下方為範例

data(){
    let areaValid = (rule,value,callback) => {
        if(value.trim().length==0){
            callback(new Error("活動區域不得為空"));
        }else{
            callback();
        }
    };
    let nameValid = (rule,value,callback) => {
        if(value.tirm().length==0){
            callback(new Error("活動名稱不得為空"));
        }else{
            callback();
        }
    }
    return{
    area: '',
    name: '',
    rules: {
        area: [{validator: areaValid, trigger: 'blur'}],
        name: [{validator: nameValid, trigger: 'blur'}]
    }
    }
},
methods: {
    submitForm: function(){
        this.$refs.form.validate((valid) => {
            if(valid){
                alert("submit");
            }else{
                alert("error submit");
            }
        })
    }
}

繼續介紹 el-form 屬性,label-position 可以控制 label 的放置位置, label-width 可以控制 label 的寬度,並且當 label-position 設置成 left 或 right 時 label-width 為必填


上一篇
Vue 與 Element UI 兩三事#23 日期選取器
下一篇
Vue 與 Element UI 兩三事#25 登入頁
系列文
Vue 與 Element UI 兩三事30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言